package main

import (
	"fmt"
)

func main() {
	// 1. 在默认情况下，管道是双向的
	ch1 := make(chan int, 2)
	ch1 <- 10
	ch1 <- 12
	m1 := <-ch1
	m2 := <-ch1
	fmt.Println(m1, m2) // 10 12

	// 2. 管道声明为只写
	ch2 := make(chan<- int, 2)
	ch2 <- 20
	ch2 <- 22
	// <-ch2 // 编译错误，不能从只写管道读取数据

	// 3. 管道声明为只读
	ch3 := make(<-chan int, 2)
	// ch3 <- 30
	// ch3 <- 32 // 编译错误，不能向只读管道写入数据
	
}